alter procedure sp_validar_formato
@formato varchar(30),
@es_valido int output
as 
 
--- declare @formato varchar(30);

--- set @formato = 'CYYYYLLLLDDDDD';

declare @parcial varchar(30);

print @formato;

declare @i integer;
declare @formato_size integer;

set @formato_size = LEN(@formato);
print @formato_size;

set @parcial = ''
set @i = 1;
while (@i <= @formato_size) 
begin
	print @i;
	print substring(@formato, @i, 1);
	set @parcial = @parcial + substring(@formato, @i, 1);
	set @es_valido = 1;
	
	if (substring(@formato, @i, 1) != substring(@formato, @i+1, 1))
	begin
		print 'validar -> ' + @parcial;
		if exists(select 1 from t_tipo_formato where patron = @parcial)
		begin
			print 'el patron es valido ;)';
		end
		else
		begin
			print 'el patron no es valido :(';
			set @es_valido = 0;		
		end
		set @parcial = '';
	end
	set @i = @i + 1;
end
	

return

exec sp_validar_formato;